package com.peas.fastdfs.service;

import com.peas.fastdfs.entity.QuartzJob;
import org.quartz.CronTrigger;
import org.quartz.TriggerKey;

/**
 * 任务调度管理借口
 */
public interface QuartzManagerService {


    /**
     * 初始化定时任务
     * @param job
     * @param cls
     */
    void initJob(QuartzJob job, Class cls);


    /**
     * 立即运行定时任务
     * @param job
     */
    void runJob(QuartzJob job);

    /**
     * 修改定时任务
     * @param job
     * @param triggerKey
     * @param trigger
     */
    void updateJob(QuartzJob job, TriggerKey triggerKey, CronTrigger trigger);

    /**
     * 暂停定时任务
     * @param job
     */
    void pauseJob(QuartzJob job);

    /**
     * 重启定时任务
     * @param job
     */
    void resumeJob(QuartzJob job);

    /**
     * 删除任务调度中的定时任务
     * @param job
     */
    void deleteJob(QuartzJob job);


    /**
     * 删除任务调度中的定时器
     * @param triggerKey
     */
    void deleteJob(TriggerKey triggerKey);
}
